package Lammbda省略模式;

public class LambdaDemo {
    public static void main(String[] args) {
//        useAddable((int x,int y)->{
//            return x+y;
//        });
        //参数的类型可以省略
        useAddable(( x, y)->{
            return x+y;
        });
        //但是有多个参数的情况下不能只省略一个
//        useAddable(( x,int y)->{
//            return x+y;
//        });

//        useFlyable((String s)->{
//            System.out.println(s);
//        });
        //省略类型
        useFlyable((s)->{
            System.out.println(s);
        });
        //如果参数有且仅有一个（）可以省略
        useFlyable(s->{
            System.out.println(s);
        });
        //如果代码块语句只有一条，省略{}和;
        useFlyable(s->System.out.println(s)
        );

        useAddable((x,y)->{
            return x+y;
        });
        //代码块有一条时，有return省略代码块时要将return也省略掉
        useAddable((x,y)->x+y
        );

    }
    private static void useFlyable(Flyable a){
        a.fly("晴空万里");
    }

    private static void useAddable(Addable addable){
    int sum=addable.add( 10, 20);
        System.out.println(sum);
    }
}
